/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedBeans;

import controladores.ConfirmarCheckInCont;
import controladores.ConsultarReservaCont;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIViewRoot;
import javax.faces.context.FacesContext;
import modelos.pojos.Reserva;
import modelos.pojos.ReservaHabitacion;
import org.apache.log4j.Logger;
import org.primefaces.component.datatable.DataTable;
import org.primefaces.component.inputtext.InputText;

/**
 *
 * @author ricardo
 */
@ManagedBean
@ViewScoped
public class CheckInHabitacion implements Serializable {
    
    public Reserva reservaPadre;
    private DataTable tablaReservasCheckables;
    protected Logger log = Logger.getLogger(CheckInHabitacion.class);

    /** Creates a new instance of CheckInHabitacion */
    public CheckInHabitacion() {
        reservaPadre = new Reserva();
    }

    public Reserva getReservaPadre() {
        return reservaPadre;
    }

    public void setReservaPadre(Reserva reservaPadre) {
        this.reservaPadre = reservaPadre;
    }

    public DataTable getTablaReservasCheckables() {
        return tablaReservasCheckables;
    }

    public void setTablaReservasCheckables(DataTable tablaReservasCheckables) {
        this.tablaReservasCheckables = tablaReservasCheckables;
    }

    public void consultarReserva() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        UIViewRoot root = facesContext.getViewRoot();
        InputText caja = (InputText) root.findComponent("este").findComponent("codReserva");
        String codigoIngresado = caja.getValue() + "";
        Reserva reservaCheckar = ConsultarReservaCont.consultarReserva(codigoIngresado);
        if (reservaCheckar != null) {
            reservaPadre = reservaCheckar;
        } else {
            FacesContext context = FacesContext.getCurrentInstance();
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"No existe reserva con el código especificado",""));
        }
    }

    public List<modelos.pojos.ReservaHabitacion> listarReservasCheckables() {
        return ConsultarReservaCont.consultarReservasHabitacionCheckables(reservaPadre.getCodigoReserva(), new Date());
    }
    
    public void registrarCheckIn(){
        ReservaHabitacion seleccion = (ReservaHabitacion) tablaReservasCheckables.getRowData();
        ConfirmarCheckInCont.confirmarCheckInReservaHabitacion(seleccion.getReserva().getCodigoReserva(), seleccion.getHabitacion().getNumero(), UserSession.cedulaRegistrante);
        FacesContext context = FacesContext.getCurrentInstance();
        context.addMessage(null, new FacesMessage("Check-In Registrado!"));
    }
    
}
